#pragma once
#include "SDL/SDL.h"
#include <vector>
using namespace std;

enum KeyState
{
    KeyReleased, KeyPressed  
};

struct Key
{
public:
    unsigned short state;
    unsigned short prevState;
};

class KeyboardState
{
private:
    void setState(Key* key, bool keydown);
    vector<Key*> vector_onestep;
public:
    KeyboardState();
    ~KeyboardState();
    void preUpdate();
    void update(SDL_Event events, bool keydown);
    //
    //
    //
    Key K_Return;
    //
    Key K_Escape;
    Key K_Space;
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    Key K_0;
    Key K_1;
    Key K_2;
    Key K_3;
    Key K_4;
    Key K_5;
    Key K_6;
    Key K_7;
    Key K_8;
    Key K_9;
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    Key K_A;
    Key K_B;
    Key K_C;
    Key K_D;
    Key K_E;
    Key K_F;
    Key K_G;
    Key K_H;
    Key K_I;
    Key K_J;
    Key K_K;
    Key K_L;
    Key K_M;
    Key K_N;
    Key K_O;
    Key K_P;
    Key K_Q;
    Key K_R;
    Key K_S;
    Key K_T;
    Key K_U;
    Key K_V;
    Key K_W;
    Key K_X;
    Key K_Y;
    Key K_Z;
    //
    Key K_KP0;
    Key K_KP1;
    Key K_KP2;
    Key K_KP3;
    Key K_KP4;
    Key K_KP5;
    Key K_KP6;
    Key K_KP7;
    Key K_KP8;
    Key K_KP9;
    //
    //
    //
    //
    //
    Key K_KPEnter;
    //
    Key K_Left;
    Key K_Right;
    Key K_Up;
    Key K_Down;
    //
    //
    //
    //
    Key K_F1;
    Key K_F2;
    Key K_F3;
    Key K_F4;
    Key K_F5;
    Key K_F6;
    Key K_F7;
    Key K_F8;
    Key K_F9;
    Key K_F10;
    Key K_F11;
    Key K_F12;
    //
    //
    //
    Key K_RightShift;
    Key K_LeftShift;
    Key K_RightControl;
    Key K_LeftControl;
    Key K_RightAlt;
    Key K_LeftAlt;
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //
    //

};

